/**
 * Captain
 * © 2018 Captain copyright，All rights reserved.
 * http://www.sccaptain.com.cn
 * 
 * JAVA : 8
 * 文  件  名: ImageUtils.java
 * 创  建  人: QinYoubin (qin.youbin@sccaptain.com.cn)
 * 创建时间: 2018年5月3日 下午1:33:43
 * 版         本: 1.0.0
 * 备         注:
 * 修订历史:
 */
package com.material.c2c.util;

import java.awt.Image;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;

/**
 * 图片处理工具
 * @since 1.0
 * @version 1.0
 * @author QinYoubin (qin.youbin@sccaptain.com.cn)
 */
public class ImageUtils {
  /*
   * 图片缩放,w，h为缩放的目标宽度和高度
   * src为源文件目录，dest为缩放后保存目录
   */
  public static void zoomImage(String src,String dest,int w,int h) throws Exception {
      
      double wr=0,hr=0;
      File srcFile = new File(src);
      File destFile = new File(dest);

      BufferedImage bufImg = ImageIO.read(srcFile); //读取图片
      Image Itemp = bufImg.getScaledInstance(w, h, BufferedImage.SCALE_SMOOTH);//设置缩放目标图片模板
      
      wr=w*1.0/bufImg.getWidth();     //获取缩放比例
      hr=h*1.0 / bufImg.getHeight();

      AffineTransformOp ato = new AffineTransformOp(AffineTransform.getScaleInstance(wr, hr), null);
      Itemp = ato.filter(bufImg, null);
      try {
          ImageIO.write((BufferedImage) Itemp,dest.substring(dest.lastIndexOf(".")+1), destFile); //写入缩减后的图片
      } catch (Exception ex) {
          ex.printStackTrace();
      }
  }
}
